home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hottest 6
/
Hottest 6 (1996)(PDSoft)[!].iso
/
software
/
videoutils
/
a-g
/
ami2d
/
test
/
srm4.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1978-11-24
|
11KB
|
481 lines
/* simple solid rocket motor */
options results
if ~show('ports', "AMI2D") then do
address command 'run ami2d:bin/ami2d'
do while ~show('ports', "AMI2D")
end
end
address ami2d
call 'ami2d:rexx/pstrain'
if ~show('l', "rexxmathlib.library") then do
check = addlib('rexxmathlib.library',0,-30,0)
end
pi = 3.141592654
rb = 6.0
ra = 1.0
rs = 4.8
w2 = 0.2
h = 0.05
E = 1500.0
nu = 0.4900
alp = 6.0e-6
Ec = 10.0e6
nuc = 0.3000
alpc = 5.0e-5
P = -1000.0
Tref = 140
To = 77
T = 500
'reset'
'problem(thermal)'
'iso(1,'E','nu',thermal,'alp','Tref')'
'iso(2,'Ec','nuc',thermal,'alpc','Tref')'
'therm(1,.5)'
'therm(2,1)'
'coord(cart)'
a1 = asin(w2/ra)
a2 = pi/4 - a1
da = (a2 - a1)/16
b1 = asin(w2/rs)
b2 = pi/4 - b1
db = (b2 - b1)/16
x1 = ra*cos(a1)
y1 = ra*sin(a1)
x2 = rs
y2 = w2
g = 1.5
i = line(x1,y1,x2,y2,g,1,21,1)
xc = rs
yc = 0.0
i = arc(xc,yc,pi/2,0.0,w2,21,9,1)
x1 = ra*cos(a1 + da)
y1 = ra*sin(a1 + da)
x2 = rs*cos(b1 + db)
y2 = rs*sin(b1 + db)
i = line(x1,y1,x2,y2,g,41,11,2)
i = ltip(xc,yc,x2,y2,0.0,0.25,w2,rb,61,3,2)
x1 = ra*cos(a1 + 2*da)
y1 = ra*sin(a1 + 2*da)
x2 = rs*cos(b1 + 2*db)
y2 = rs*sin(b1 + 2*db)
i = line(x1,y1,x2,y2,g,81,21,1)
i = ltip(xc,yc,x2,y2,0.0,0.5,w2,rb,101,5,1)
x1 = ra*cos(a1 + 3*da)
y1 = ra*sin(a1 + 3*da)
x2 = rs*cos(b1 + 3*db)
y2 = rs*sin(b1 + 3*db)
i = line(x1,y1,x2,y2,g,121,11,2)
i = ltip(xc,yc,x2,y2,0.0,0.75,w2,rb,141,3,2)
x1 = ra*cos(a1 + 4*da)
y1 = ra*sin(a1 + 4*da)
x2 = rs*cos(b1 + 4*db)
y2 = rs*sin(b1 + 4*db)
i = line(x1,y1,x2,y2,g,161,21,1)
i = ltip(xc,yc,x2,y2,0.0,1.0,w2,rb,181,5,1)
i = arc(0.0,0.0,pi/16,0.0,rb + h/2,190,3,2)
i = arc(0.0,0.0,pi/16,0.0,rb + h,195,5,1)
x1 = ra*cos(a1 + 6*da)
y1 = ra*sin(a1 + 6*da)
x2 = rs*cos(3*pi/32)
y2 = rs*sin(3*pi/32)
i = line(x1,y1,x2,y2,g,201,11,2)
x1 = x2
y1 = y2
x2 = rb*cos(3*pi/32)
y2 = rb*sin(3*pi/32)
i = line(x1,y1,x2,y2,1.0,221,3,2)
x1 = x2
y1 = y2
x2 = (rb + h)*cos(3*pi/32)
y2 = (rb + h)*sin(3*pi/32)
i = line(x1,y1,x2,y2,1.0,225,2,2)
x1 = ra*cos(a1 + 8*da)
y1 = ra*sin(a1 + 8*da)
x2 = rs*cos(pi/8)
y2 = rs*sin(pi/8)
i = line(x1,y1,x2,y2,g,241,21,1)
x1 = x2
y1 = y2
x2 = rb*cos(pi/8)
y2 = rb*sin(pi/8)
i = line(x1,y1,x2,y2,1.0,261,5,1)
x1 = x2
y1 = y2
x2 = (rb + h)*cos(pi/8)
y2 = (rb + h)*sin(pi/8)
i = line(x1,y1,x2,y2,1.0,265,3,1)
x1 = ra*cos(a1 + 10*da)
y1 = ra*sin(a1 + 10*da)
x2 = rs*cos(5*pi/32)
y2 = rs*sin(5*pi/32)
i = line(x1,y1,x2,y2,g,281,11,2)
x1 = x2
y1 = y2
x2 = rb*cos(5*pi/32)
y2 = rb*sin(5*pi/32)
i = line(x1,y1,x2,y2,1.0,301,3,2)
x1 = x2
y1 = y2
x2 = (rb + h)*cos(5*pi/32)
y2 = (rb + h)*sin(5*pi/32)
i = line(x1,y1,x2,y2,1.0,305,2,2)
xc = rs*cos(pi/4)
yc = rs*sin(pi/4)
x1 = ra*cos(a1 + 12*da)
y1 = ra*sin(a1 + 12*da)
x2 = rs*cos(b1 + 12*db)
y2 = rs*sin(b1 + 12*db)
i = line(x1,y1,x2,y2,g,321,21,1)
i = rtip(xc,yc,x2,y2,pi/4,1.0,w2,rb,341,5,1)
i = arc(0.0,0.0,3*pi/16,pi/4,rb + h/2,350,3,2)
i = arc(0.0,0.0,3*pi/16,pi/4,rb + h,355,5,1)
x1 = ra*cos(a1 + 13*da)
y1 = ra*sin(a1 + 13*da)
x2 = rs*cos(b1 + 13*db)
y2 = rs*sin(b1 + 13*db)
i = line(x1,y1,x2,y2,g,361,11,2)
i = rtip(xc,yc,x2,y2,pi/4,0.75,w2,rb,381,3,2)
x1 = ra*cos(a1 + 14*da)
y1 = ra*sin(a1 + 14*da)
x2 = rs*cos(b1 + 14*db)
y2 = rs*sin(b1 + 14*db)
i = line(x1,y1,x2,y2,g,401,21,1)
i = rtip(xc,yc,x2,y2,pi/4,0.5,w2,rb,421,5,1)
x1 = ra*cos(a1 + 15*da)
y1 = ra*sin(a1 + 15*da)
x2 = rs*cos(b1 + 15*db)
y2 = rs*sin(b1 + 15*db)
i = line(x1,y1,x2,y2,g,441,11,2)
i = rtip(xc,yc,x2,y2,pi/4,0.25,w2,rb,461,3,2)
x1 = ra*cos(a2)
y1 = ra*sin(a2)
x2 = xc + w2*sin(pi/4)
y2 = yc - w2*cos(pi/4)
g = 1.5
i = line(x1,y1,x2,y2,g,481,21,1)
i = arc(xc,yc,-pi/4,pi/4,w2,501,9,1)
a1 = asin(w2/ra) + pi/4
a2 = pi/2 - asin(w2/ra)
da = (a2 - a1)/16
b1 = asin(w2/rs) + pi/4
b2 = pi/2 - asin(w2/rs)
db = (b2 - b1)/16
i = arc(xc,yc,3*pi/4,pi/4,w2,541,9,1)
x1 = ra*cos(a1)
y1 = ra*sin(a1)
x2 = xc - w2*sin(pi/4)
y2 = yc + w2*cos(pi/4)
g = 1.5
i = line(x1,y1,x2,y2,g,521,21,1)
x2 = rs*cos(b1 + db)
y2 = rs*sin(b1 + db)
i = ltip(xc,yc,x2,y2,pi/4,0.25,w2,rb,581,3,2)
x1 = ra*cos(a1 + da)
y1 = ra*sin(a1 + da)
i = line(x1,y1,x2,y2,g,561,11,2)
x2 = rs*cos(b1 + 2*db)
y2 = rs*sin(b1 + 2*db)
i = ltip(xc,yc,x2,y2,pi/4,0.5,w2,rb,621,5,1)
x1 = ra*cos(a1 + 2*da)
y1 = ra*sin(a1 + 2*da)
i = line(x1,y1,x2,y2,g,601,21,1)
x2 = rs*cos(b1 + 3*db)
y2 = rs*sin(b1 + 3*db)
i = ltip(xc,yc,x2,y2,pi/4,0.75,w2,rb,661,3,2)
x1 = ra*cos(a1 + 3*da)
y1 = ra*sin(a1 + 3*da)
i = line(x1,y1,x2,y2,g,641,11,2)
x2 = rs*cos(b1 + 4*db)
y2 = rs*sin(b1 + 4*db)
i = ltip(xc,yc,x2,y2,pi/4,1.0,w2,rb,701,5,1)
i = arc(0.0,0.0,5*pi/16,pi/4,rb + h/2,710,3,2)
i = arc(0.0,0.0,5*pi/16,pi/4,rb + h,715,5,1)
x1 = ra*cos(a1 + 4*da)
y1 = ra*sin(a1 + 4*da)
i = line(x1,y1,x2,y2,g,681,21,1)
x1 = rs*cos(11*pi/32)
y1 = rs*sin(11*pi/32)
x2 = rb*cos(11*pi/32)
y2 = rb*sin(11*pi/32)
i = line(x1,y1,x2,y2,1.0,741,3,2)
x1 = x2
y1 = y2
x2 = (rb + h)*cos(11*pi/32)
y2 = (rb + h)*sin(11*pi/32)
i = line(x1,y1,x2,y2,1.0,745,2,2)
x1 = ra*cos(a1 + 6*da)
y1 = ra*sin(a1 + 6*da)
x2 = rs*cos(11*pi/32)
y2 = rs*sin(11*pi/32)
i = line(x1,y1,x2,y2,g,721,11,2)
x1 = rs*cos(3*pi/8)
y1 = rs*sin(3*pi/8)
x2 = rb*cos(3*pi/8)
y2 = rb*sin(3*pi/8)
i = line(x1,y1,x2,y2,1.0,781,5,1)
x1 = x2
y1 = y2
x2 = (rb + h)*cos(3*pi/8)
y2 = (rb + h)*sin(3*pi/8)
i = line(x1,y1,x2,y2,1.0,785,3,1)
x1 = ra*cos(a1 + 8*da)
y1 = ra*sin(a1 + 8*da)
x2 = rs*cos(3*pi/8)
y2 = rs*sin(3*pi/8)
i = line(x1,y1,x2,y2,g,761,21,1)
x1 = rs*cos(13*pi/32)
y1 = rs*sin(13*pi/32)
x2 = rb*cos(13*pi/32)
y2 = rb*sin(13*pi/32)
i = line(x1,y1,x2,y2,1.0,821,3,2)
x1 = x2
y1 = y2
x2 = (rb + h)*cos(13*pi/32)
y2 = (rb + h)*sin(13*pi/32)
i = line(x1,y1,x2,y2,1.0,825,2,2)
x1 = ra*cos(a1 + 10*da)
y1 = ra*sin(a1 + 10*da)
x2 = rs*cos(13*pi/32)
y2 = rs*sin(13*pi/32)
i = line(x1,y1,x2,y2,g,801,11,2)
xc = 0.0
yc = rs
x2 = rs*cos(b1 + 12*db)
y2 = rs*sin(b1 + 12*db)
i = rtip(xc,yc,x2,y2,pi/2,1.0,w2,rb,861,5,1)
i = arc(0.0,0.0,7*pi/16,pi/2,rb + h/2,870,3,2)
i = arc(0.0,0.0,7*pi/16,pi/2,rb + h,875,5,1)
x1 = ra*cos(a1 + 12*da)
y1 = ra*sin(a1 + 12*da)
i = line(x1,y1,x2,y2,g,841,21,1)
x2 = rs*cos(b1 + 13*db)
y2 = rs*sin(b1 + 13*db)
i = rtip(xc,yc,x2,y2,pi/2,0.75,w2,rb,901,3,2)
x1 = ra*cos(a1 + 13*da)
y1 = ra*sin(a1 + 13*da)
i = line(x1,y1,x2,y2,g,881,11,2)
x2 = rs*cos(b1 + 14*db)
y2 = rs*sin(b1 + 14*db)
i = rtip(xc,yc,x2,y2,pi/2,0.5,w2,rb,941,5,1)
x1 = ra*cos(a1 + 14*da)
y1 = ra*sin(a1 + 14*da)
i = line(x1,y1,x2,y2,g,921,21,1)
x2 = rs*cos(b1 + 15*db)
y2 = rs*sin(b1 + 15*db)
i = rtip(xc,yc,x2,y2,pi/2,0.25,w2,rb,981,3,2)
x1 = ra*cos(a1 + 15*da)
y1 = ra*sin(a1 + 15*da)
i = line(x1,y1,x2,y2,g,961,11,2)
i = arc(xc,yc,0.0,pi/2,w2,1021,9,1)
x1 = ra*cos(a2)
y1 = ra*sin(a2)
x2 = w2
y2 = rs
g = 1.5
i = line(x1,y1,x2,y2,g,1001,21,1)
do j=1 to 14
n = j*2 - 1
'quad8('j',1,'n','n + 2','n + 82','n + 80','n + 1','n + 42','n + 81','n + 40')'
'press('j',1,'P')'
end
do j=1 to 14
n = j*2 + 79
'quad8('j + 20',1,'n','n + 2','n + 82','n + 80','n + 1','n + 42','n + 81','n + 40')'
end
'quad8(35,2,187,189,199,197,188,194,198,192)'
'quad8(36,2,185,187,197,195,186,192,196,190)'
'group(case,add,185,199)'
do j=1 to 12
n = j*2 + 159
'quad8('j + 40',1,'n','n + 2','n + 82','n + 80','n + 1','n + 42','n + 81','n + 40')'
end
'quad8(53,2,265,185,195,267,225,190,227,266)'
'group(case,add,225,227)'
'group(case,add,265,267)'
do j=1 to 12
n = j*2 + 239
'quad8('j + 60',1,'n','n + 2','n + 82','n + 80','n + 1','n + 42','n + 81','n + 40')'
end
'quad8(73,2,345,265,267,355,305,266,307,350)'
'group(case,add,305,307)'
do j=1 to 14
n = j*2 + 319
'quad8('j + 80',1,'n','n + 2','n + 82','n + 80','n + 1','n + 42','n + 81','n + 40')'
end
'quad8(95,2,347,345,355,357,346,350,356,352)'
'quad8(96,2,349,347,357,359,348,352,358,354)'
'group(case,add,345,359)'
do j=1 to 14
n = j*2 + 399
'quad8('j + 100',1,'n','n + 2','n + 82','n + 80','n + 1','n + 42','n + 81','n + 40')'
'press('j + 100',3,'P')'
end
do j=1 to 13
n = j*2 + 519
'quad8('j + 120',1,'n','n + 2','n + 82','n + 80','n + 1','n + 42','n + 81','n + 40')'
'press('j + 120',1,'P')'
end
'quad8(134,1,547,509,429,627,548,469,628,587)'
'press(134,1,'P')'
do j=1 to 13
n = j*2 + 599
'quad8('j + 140',1,'n','n + 2','n + 82','n + 80','n + 1','n + 42','n + 81','n + 40')'
end
'quad8(154,1,627,429,349,707,628,389,708,667)'
'quad8(155,2,707,349,359,717,708,354,718,712)'
'quad8(156,2,705,707,717,715,706,712,716,710)'
'group(case,add,705,718)'
do j=1 to 12
n = j*2 + 679
'quad8('j + 160',1,'n','n + 2','n + 82','n + 80','n + 1','n + 42','n + 81','n + 40')'
end
'quad8(173,2,785,705,715,787,745,710,747,786)'
'group(case,add,745,747)'
'group(case,add,785,787)'
do j=1 to 12
n = j*2 + 759
'quad8('j + 180',1,'n','n + 2','n + 82','n + 80','n + 1','n + 42','n + 81','n + 40')'
end
'quad8(193,2,865,785,787,875,825,786,827,870)'
'group(case,add,825,827)'
do j=1 to 14
n = j*2 + 839
'quad8('j + 200',1,'n','n + 2','n + 82','n + 80','n + 1','n + 42','n + 81','n + 40')'
end
'quad8(215,2,867,865,875,877,866,870,876,872)'
'quad8(216,2,869,867,877,879,868,872,878,874)'
'group(case,add,865,879)'
do j=1 to 14
n = j*2 + 919
'quad8('j + 220',1,'n','n + 2','n + 82','n + 80','n + 1','n + 42','n + 81','n + 40')'
'press('j + 220',3,'P')'
end
do j=1 to 221 by 20
'press('j',4,'P')'
end
do j=29 to 189 by 40
'dispy('j',0.0)'
end
'dispy(194,0.0)'
'dispy(199,0.0)'
do j=869 to 1029 by 40
'dispx('j',0.0)'
end
'dispx(874,0.0)'
'dispx(879,0.0)'
do j=1 to 29
'temp('j','T')'
end
do j=481 to 509
'temp('j','T')'
end
do j=521 to 548
'temp('j','T')'
end
do j=1001 to 1029
'temp('j','T')'
end
do j=41 to 441 by 40
'temp('j','T')'
end
do j=561 to 961 by 40
'temp('j','T')'
end
do j=195 to 199
'temp('j','To')'
end
'temp(227,'To')'
'temp(267,'To')'
'temp(307,'To')'
do j=355 to 359
'temp('j','To')'
end
do j=715 to 718
'temp('j','To')'
end
'temp(747,'To')'
'temp(787,'To')'
'temp(827,'To')'
do j=875 to 879
'temp('j','To')'
end
exit
line:
arg xa,ya,xb,yb,gg,i1,n,di
n1 = di*(n - 1)
do i=0 to n1 by di
j = i1 + i
xn = xa + (xb-xa)*pow(i/n1,gg)
yn = ya + (yb-ya)*pow(i/n1,gg)
'node('j','xn','yn')'
end
return j
arc:
arg cx,cy,aa,ab,r1,i1,n,di
n1 = di*(n - 1)
do i=0 to n1 by di
j = i1 + i
an = aa + (ab-aa)*i/n1
xn = r1*cos(an) + cx
yn = r1*sin(an) + cy
'node('j','xn','yn')'
end
return j
ltip:
arg xc,yc,x1,y1,ab,fn,w2,rb,i1,n,di
xa = w2*cos(ab + pi/4) + xc
ya = w2*sin(ab + pi/4) + yc
xb = rb*cos(ab + pi/16)
yb = rb*sin(ab + pi/16)
xx = xa + (xb-xa)*fn
yy = ya + (yb-ya)*fn
i = line(x1,y1,xx,yy,1.0,i1,n,di)
rr = sqrt(xx*xx + yy*yy)
aa = atan(yy/xx)
i = arc(0.0,0.0,aa,ab,rr,i,n,di)
return i
rtip:
arg xc,yc,x1,y1,ab,fn,w2,rb,i1,n,di
xa = w2*cos(ab - pi/4) + xc
ya = w2*sin(ab - pi/4) + yc
xb = rb*cos(ab - pi/16)
yb = rb*sin(ab - pi/16)
xx = xa + (xb-xa)*fn
yy = ya + (yb-ya)*fn
i = line(x1,y1,xx,yy,1.0,i1,n,di)
rr = sqrt(xx*xx + yy*yy)
aa = atan(yy/xx)
i = arc(0.0,0.0,aa,ab,rr,i,n,di)
return i